/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package grex;

import grex.Data.ArffTableModel;
import grex.WekaModels.*;
import java.util.ArrayList;

/**
 *
 * @author RIK
 */
public class Benchmark extends ArrayList<IPredictiveModel> {

    public Benchmark(Options options, ArffTableModel orgData) {
        if (options.getPROBLEM_TYPE() == Options.REGRESSION) {
            if (options.isZeroRReg()) {
                add(new GrexZeroR(orgData));
            }
            //  */
            if (options.isSVMReg()) {
                add(new GrexSVMReg(orgData));
            }

            if (options.isRBF()) {
                add(new GrexRBF(orgData));
            }

            if (options.isM5PModelTree()) {
                add(new GrexM5P(orgData));
            }

            if (options.isM5PRegTree()) {
                add(new GrexM5PRegTree(orgData));
            }

            if (options.isMLPReg()) {
                add(new GrexMLP(orgData));
            }
            if (options.isReptreeREG()) {
                add(new GrexREPTree(orgData));
            }

            if (options.isLinearRegression()) {
                add(new GrexLinearRegression(orgData));
            }

            if (options.isPaceRegression()) {
                add(new GrexPaceRegression(orgData));
            }

            if (options.isBaggedM5P()) {
                add(new GrexM5PBag(orgData));
            }

        } else {//Classification           
            if (options.isZeroR()) {
                add(new GrexZeroR(orgData));
            }

            if (options.isJ48()) {
                add(new GrexJ48(orgData));
            }

            if (options.isSimpleCart()) {
                add(new GrexSimpleCart(orgData));
            }

            if (options.isREPTree()) {
                add(new GrexREPTree(orgData));
            }

            if (options.isRandomForest()) {
                add(new GrexRandomForest(orgData));
            }

            if (options.isMLP()) {
                add(new GrexMLP(orgData));
            }
            if (options.isSVM()) {
                add(new GrexSVMClass(orgData));
            }
        }
    }
}
